package com.ck.common.service;

import com.ck.model.common.OperationLog;
import com.ck.model.common.User;
import com.ck.model.common.page.PageInfo;
import com.ck.model.common.vo.OperationLogListVO;
import org.springframework.transaction.annotation.Transactional;

import javax.servlet.http.HttpServletRequest;

/**
 * 日志Service
 */
public interface OperationLogService {
	/**
	 * 保存日志
	 *
	 * @param operationLog TbOperationLog
	 */
	@Transactional(readOnly = false, rollbackFor = Exception.class)
	void saveOperationLog(OperationLog operationLog);

	/**
	 * 获取操作日志分页列表
	 * @param companyCode 商家code
	 * @param startTime 开始时间
	 * @param endTime   接受时间
	 * @param pageNum   当前页ss
	 * @param pageSize  每页显示条数
	 * @return PageInfo<OperationLogListVO>
	 */
	PageInfo<OperationLogListVO> listOperationLogByPage(String companyCode, String startTime, String endTime, Integer pageNum, Integer pageSize);

    /**
     * 保存成功日志
     *
     * @param optContent 日志内容
     * @param module     模块
     * @param request
     */
	void saveSuccessOperationLog(String optContent, String module, HttpServletRequest request);

    /**
     * 保存成功日志
     *
     * @param optContent 日志内容
     * @param module     模块
     * @param user       登录用户
     * @param ip         登录IP
     */
	void saveSuccessOperationLog(String optContent, String module, User user, String ip);
}
